package com.sunny.design.strategy.exam2;

/**
 * 订单支付
 *  通过支付key获取对应的类执行不同的算法
 *
 * @author Sunny
 * @date 2020/1/4 22:31
 */
public class Order {
    private String uid;
    private String orderId;
    private double amount;

    public Order(String uid, String orderId, double amount) {
        this.uid = uid;
        this.orderId = orderId;
        this.amount = amount;
    }

    public MsgResult pay() {
        return pay(PayStrategy.DEFAULT_PAY);
    }

    public MsgResult pay(String payKey) {
        Payment payment = PayStrategy.getPayment(payKey);
        System.out.println("欢迎使用: " + payment.getName());
        System.out.println("本次交易金额为：" + amount + "，开始扣款...");
        return payment.pay(uid, amount);
    }
}
